package com.ship.dispatch.service;

import com.ship.common.core.base.BaseBean;
import com.ship.common.core.base.Export;
import com.ship.common.business.service.BaseService;
import com.ship.dispatch.bean.boats.info.QueryBoatsPortInfo;
import com.ship.dispatch.bean.bpm.BpmJsonModelDO;

import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;

/**
 * @author tangshixuan
 * @date 2023-9-6
 */
public interface ExportService<E extends BaseBean> extends BaseService<Export> {

    /**
     * 列表导出
     * @param exportList
     */
    String pageExport(List<?> exportList, Field[] fields, List<String> table, String fileName);

    String pageMergeExport(List<?> exportList, Field[] fields, List<String> table, String fileName);

    /**
     * 获取用户配置列表显示项
     * @param module
     * @param currentUserId
     * @return
     */
    List<String> listStrByModuleAndUser(String module, Long currentUserId);

    String exportUtil(List<?> list, Field[] fields, List<String> tableNameList, List<String> tableList, String fileName);

    String fileExport(List<?> list, Field[] fields, List<String> tableNameList, List<String> tableList, String fileName) throws IOException, IllegalAccessException;

    String createExcelFileDate(List<?> exportList, Field[] fields, List<String> propertyNames, List<String> tableName, String 审批流程信息);
}
